\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{buaa_paper}[2010/11/09 v0.1 by RanJiao]

\usepackage{CJKfntef}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{zhfontcfg}
\usepackage{fancyhdr}
\usepackage{amsthm}
\usepackage{multirow}

% 段间距
\setlength{\parskip}{0em}

% 定义
\theoremstyle{definition}
\newtheorem{defi}{定义}

% 定义图标标题
\usepackage[font={bf}, justification=centering]{caption}
\setlength{\intextsep}{5pt}
%\setlength{\abovecaptionskip}{10pt}
%\setlength{\belowcaptionskip}{-15pt}
\setlength{\textfloatsep}{5pt}
\setlength{\floatsep}{0pt}

% 去除图表的冒号
\DeclareCaptionLabelSeparator{twospaces}{\ ~}
% 自定义图标题的字体，用宋体加粗而不是粗体。在电脑上看起来很丑，但是打印出来就没问题了
\DeclareCaptionFont{bhfigurefont}{\wuhao\ssong}
\captionsetup[table]{font={bhfigurefont, bf}, labelsep=twospaces}
\captionsetup[figure]{font={bhfigurefont, bf}, labelsep=twospaces}

% 所有插图连续编号
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}

% subfigure
\usepackage[normal]{subfigure}

% 自定义章节标题
\usepackage[compact]{titlesec}
\titleformat{\section}[hang]{\filright\sihao\hhei}
  {\hhei\thesection}{1em}{}[]
\titleformat{\subsection}[hang]{\xiaosihao\hhei}
  {\hei{\thesubsection}}{1em}{}[]
\titleformat{\subsubsection}[hang]{\xiaosihao\hhei}
  {\hei{\thesubsubsection}}{1em}{}[]

% 去除chapter, section, subsection前面的空白
\titlespacing*{\chapter}{0pt}{-10pt}{0pt}
\titlespacing*{\section}{0pt}{-5pt}{-5pt}
\titlespacing*{\subsection}{0pt}{-15pt}{0pt}
\titlespacing*{\subsubsection}{0pt}{-10pt}{0pt}
\titleformat{\chapter}[block]{\filright\sanhao\hhei\centering}
  { 第\CJKnumber{\thechapter}章 }{1em}{}

% 行间距
\usepackage{setspace}

\renewcommand\contentsname{目\qquad 录}
%\renewcommand\refname{参考文献}
\renewcommand\figurename{图}
\renewcommand\listfigurename{图\qquad 目}
\renewcommand\listtablename{表\qquad 目}

% 生成目录和链接
\usepackage[unicode,
  bookmarksnumbered,
  bookmarksopen,
  colorlinks,
  citecolor=black,
  linkcolor=black]{hyperref}

% 页边距
\usepackage[top=25mm,bottom=25mm,left=30mm,right=20mm]{geometry}
\setlength{\oddsidemargin}{0mm} \setlength{\evensidemargin}{0mm}

% dummy
\title{毕业论文}

% 论文题目
\gdef\@papertitle{火焰仿真}
\gdef\@epapertitle{fire simulation}
\newcommand{\papertitle}[2]{\gdef\@papertitle{#1}\gdef\@epapertitle{#2}}

% 关键字
\gdef\@keywords{纳维-斯托克斯方程}
\gdef\@ekeywords{Navier-Stokes}
\newcommand{\keywords}[2]{\gdef\@keywords{#1}\gdef\@ekeywords{#2}}

% 中文摘要
\newenvironment{abstract_ch}
{
\begin{center}
\textbf{\sanhao{摘~~~~~~要}}
\end{center}
}{
~\\
\textbf{关键词：}\@keywords
}

% 英文摘要
\newenvironment{abstract_en}
{
\begin{center}
\textbf{\sanhao{Abstract:}}
\end{center}
}{
~\\
\textbf{Keyword:}\@ekeywords
}

% 学号
\gdef\@studentnumber{SY000000}
\newcommand{\studentnumber}[1]{\gdef\@studentnumber{#1}}

% 院系名称
\gdef\@schoolname{计算机学院}
\newcommand{\schoolname}[1]{\gdef\@schoolname{#1}}

% 专业名称
\gdef\@specialty{计算机科学与技术}
\newcommand{\specialty}[1]{\gdef\@specialty{#1}}

% 学生
\gdef\@student{学生一只}
\gdef\@estudent{Xuesheng}
\newcommand{\student}[2]{\gdef\@student{#1}\gdef\@estudent{#2}}

% 导师
\gdef\@advisor{郝爱民}
\gdef\@eadvisor{Hao Aimin}
\newcommand{\advisor}[2]{\gdef\@advisor{#1}\gdef\@eadvisor{#2}}

% 研究方向
\gdef\@researcharea{虚拟现实与可视化}
\newcommand{\researcharea}[1]{\gdef\@researcharea{#1}}

% 培养院系
\gdef\@school{计算机学院}
\newcommand{\school}[1]{\gdef\@school{#1}}

% 用来做表格中带下划线的单元格
\newcommand{\filltable}[1]{\CJKunderline{~\hfill#1 \hfill~}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% maketitle
\renewcommand{\maketitle}{

\begin{titlepage}
\thispagestyle{empty}

%\vskip 47bp


\begin{spacing}{1.0}
\noindent\wuhao\hei{中图分类号：}\textbf{TP391.9}\\
\wuhao\hei{论~文~编~号：}\textbf{10006SY0906507}
\end{spacing}

\vskip 28mm
\begin{center}\noindent\includegraphics[width=8cm]{buaa}
\vskip 10bp
\centerline{\chuhao\xingkai{硕~~士~~学~~位~~论~~文}}
\vskip 33mm
\begin{spacing}{1.8}
\dayihao\song{\@papertitle}
\end{spacing}
\vskip 38mm

\begin{spacing}{1.5}\selectfont
\sihao\hei{
\begin{tabular}{c p{110bp}}
  作~~者~~姓~~名~&\@student\\
  学~~科~~专~~业~&\@specialty\\
  指~~导~~教~~师~&\@advisor\\
  培~~养~~院~~系~&\@school\\
\end{tabular}
}
\end{spacing}
\end{center}

\vfill
\newpage
\thispagestyle{empty}
~
\vskip 2cm
\begin{center}
\linespread{1.75}\selectfont
{\xiaoerhao\textbf{\@epapertitle}}

\vskip 23mm
\begin{spacing}{1.8}
\sihao A Dissertation Submitted for the Degree of Master
\end{spacing}
\vskip 30mm

\xiaosihao\textbf{\xiaosanhao
Candidate:~~ \@estudent
\vskip 10mm
Supervisor:~~ Prof. ~\@eadvisor}

\vskip 37mm
\begin{spacing}{1.5}
\xiaosanhao
School of Computer Science and Engineering\\
Beihang University, Beijing, China
\end{spacing}
\end{center}
\newpage
\thispagestyle{empty}
\linespread{1}\selectfont
\begin{flushleft}
\wuhao\hei{中图分类号：}\textbf{TP391.9}\\
\hei{论~文~编~号：}\textbf{10006SY0906507}
\end{flushleft}
\vskip 37mm
\begin{center}
\hei{\xiaoerhao 硕~~士~~学~~位~~论~~文}
\vskip 26mm
\xiaoyihao\hei{~~~~~\@papertitle} % 为毛标题分行以后第一行不能居中
\end{center}
\vskip 44mm
\noindent\song{\xiaosihao
\linespread{1.6}\selectfont
\begin{center}
\begin{tabular}{p{2.55cm} p{5cm} p{2.55cm} p{5cm}}
作\hfill 者\hfill 姓\hfill 名 & \filltable{\@student}
& 申请学位级别 & \filltable{工学硕士}\\
指导教师姓名 & \filltable{\@advisor}& 职\hfill 称 & \filltable{教授}\\
学\hfill 科\hfill 专\hfill 业 & \filltable{计算机应用技术} & 研\hfill
究\hfill 方\hfill 向 & \filltable{虚拟现实}\\
学习时间\hfill 自 & \filltable{~~~~} 年 \filltable{~} 月
\filltable{~~} 日 &
起\hfill 至 &
\filltable{~~~~} 年\filltable{~~}月\filltable{~~}日~止\\
论文提交日期 & \filltable{~~~~}年\filltable{~~}月\filltable{~~}日&
论文答辩日期 & \filltable{~~~~}年\filltable{~~}月\filltable{~~}日~\hspace{1em}~\\
学位授予单位 & \filltable{北京航空航天大学}
& 学位授予日期 & \filltable{\hspace{2em}} 年 \filltable{~~} 月 \filltable{~~}
日~\hspace{1em}~\\
\end{tabular}
\end{center}
}

\newpage
\thispagestyle{empty}

{\begin{center}\sanhao\hei{关于学位论文的独创性声明}\end{center}}
\vskip 5mm
\song{
  \linespread{1.69}\selectfont
  本人郑重声明:所呈交的论文是本人在导师指导下独立进行研究工作所取得的成
  果,论文中有关资料和数据是实事求是的。尽我所知,除文中已经加以标注和致
  谢外,本论文不包含其它人已经发表或撰写的研究成果,也不包含本人或他人为
  获得北京航空航天大学或其它教育机构的学位或证书等而使用过的材料。与我
  一同工作的同志对研究所做的任何贡献均已在论文中作出了明确的说明。

  若有不实之处,本人愿意承担相关法律责任。\\

  学位论文作者签名\CJKunderline{\hspace{13em}}
  ~~日期~\CJKunderline{\hspace{4em}}~年\CJKunderline{\hspace{2em}}月
  \CJKunderline{\hspace{2em}}日

}

\vskip 5cm

{\begin{center}\sanhao\hei{\centering 关于学位论文使用授权的声明}\end{center}}
\vskip 5mm
\song{
  \linespread{1.69}\selectfont
  本人完全同意北京航空航天大学有权使用本学位论文(包括但不限于其印刷版和
  电子版) ,使用方式包括但不限于:保留学位论文,按规定向国家有关部门(机构)送
  交学位论文,以学术交流为目的赠送和交换学位论文,允许学位论文被查阅、借
  阅和复印,将学位论文的全部或部分内容编入有关数据库进行检索,采用影印、
  缩印或其它复制手段保存学位论文。

  保密学位论文在解密后的使用授权同上。\\

  学位论文作者签名\CJKunderline{\hspace{13em}}
  ~~日期~\CJKunderline{\hspace{4em}}~年\CJKunderline{\hspace{2em}}月
  \CJKunderline{\hspace{2em}}日

  指导教师签名\hspace{2em}\CJKunderline{\hspace{13em}}
  ~~日期~\CJKunderline{\hspace{4em}}~年\CJKunderline{\hspace{2em}}月
  \CJKunderline{\hspace{2em}}日

}

\end{titlepage}
}
%% eof maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 图片目录
\graphicspath{{../pic/}}

% 定义页眉、页脚
\setlength{\headheight}{15pt} % 设置页眉高度，防止出现warning
\renewcommand{\chaptermark}[1]{\markboth{第～\CJKnumber{chapter}～章\quad  #1 }{}}
\makeatletter
% 判断是否是frontmatter，如果是的话就不用页眉
\newif \if@frontmatter   \@frontmatterfalse
\let \LaTeXfrontmatter = \frontmatter
\let \LaTeXmainmatter  = \mainmatter
\renewcommand {\frontmatter} {\@frontmattertrue  \LaTeXfrontmatter}
\renewcommand {\mainmatter}  {\@frontmatterfalse \LaTeXmainmatter}
% 对单双页码使用不同的页眉
\pagestyle{fancy}
  \fancyhf{}
  \fancyhead[CO]{\if@frontmatter\else\small 北京航空航天大学硕士学位论文\fi}
  \fancyhead[CE]{\if@frontmatter\else\small \leftmark \fi}
  \fancyfoot[C]{~\thepage~}
  \renewcommand{\headrulewidth}{\if@frontmatter 0pt\else .7pt\fi}%
  \fancypagestyle{plain}{%
    \pagestyle{fancy}
  }
\makeatother
%
%%设置目录字体
\usepackage{titletoc}

%定义目录、表目、图目的格式
\usepackage[subfigure, titles]{tocloft}
\renewcommand{\cftfigpresnum}{图 }
\renewcommand{\cftfigaftersnumb}{\ ~~} % 编号后的空白
\renewcommand{\cfttabpresnum}{表 }
\renewcommand{\cfttabaftersnumb}{\ ~~} % 编号后的空白
% 字体
\renewcommand{\cftfigfont}{\xiaosihao\ssong }
\renewcommand{\cfttabfont}{\xiaosihao\ssong }
\renewcommand{\cftchapfont}{\xiaosihao\hhei }
\renewcommand{\cftsecfont}{\xiaosihao\ssong }
\renewcommand{\cftsubsecfont}{\wuhao\ssong }
\cftsetpnumwidth{1em} % 页码占一个中文字符宽
\renewcommand{\cftchapdotsep}{\cftdotsep} % 给chapter加上点儿
\renewcommand{\cftdot}{.}
\renewcommand{\cftdotsep}{0}

% 解决tocloft和ctex文档类的冲突。没有这段的话目录和编号会重叠到一块儿
\makeatletter
\renewcommand{\numberline}[1]{%
\settowidth\@tempdimb{#1\hspace{0.5em}}%
\ifdim\@tempdima<\@tempdimb%
  \@tempdima=\@tempdimb%
\fi%
\hb@xt@\@tempdima{\@cftbsnum #1\@cftasnum\hfil}\@cftasnumb}
\makeatother

% 自定义参考文献格式
\usepackage[super,comma,numbers,square,sort&compress]{natbib}
\bibliographystyle{GBT7714-2005NLang-UTF8}
% 重定义citenum, 去掉数字前面的空格
\makeatletter
\DeclareRobustCommand\citenum
   {\begingroup
%      \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\NAT@spacechar% DELETED
     \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\relax% NEW
     \NAT@citexnum[][]}
\makeatother